package com.hxkj.mapper;

import com.hxkj.domain.po.Column;
import com.platform.common.domain.annotation.EnableDataSource;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
* 数据库操作接口
*
* @author: chenwei
* @version: 1.0
* @datetime: 2018-06-05 19:32:55
*
*/
@Repository("columnMapper")
public interface ColumnMapper {


    /**
    * @author Mr.zheng
    * @Description saveColumn 新增文章分类
    * @Date 15:41 2018/6/6
    * @Param [column]
    * @return int
    **/
    @EnableDataSource("master")
    int saveColumn(Column column);

    /**
    * @author Mr.zheng
    * @Description getColumnList 获取文章分类列表
    * @Date 16:23 2018/6/6
    * @Param [column]
    * @return java.util.List<com.hxkj.domain.po.Column>
    **/
    @EnableDataSource("slave")
    List<Column> getColumnList(Column column);

    /**
    * @author Mr.zheng
    * @Description getColumnByName 根据文章分类名称获取文章分类信息
    * @Date 15:47 2018/6/7
    * @Param [columnName]
    * @return java.util.List<com.hxkj.domain.po.Column>
    **/
    @EnableDataSource("slave")
    List<Column> getColumnByName(Column column);

    /**
    * @author Mr.zheng
    * @Description removerColumn 根据ID删除文章分类
    * @Date 16:08 2018/6/7
    * @Param [columnId]
    * @return int
    **/
    @EnableDataSource("master")
    int removeColumnById(Long columnId);

    /**
    * @author Mr.zheng
    * @Description getColumnByParentColumnId 根据父节点ID获取子节点分类信息
    * @Date 16:24 2018/6/7
    * @Param [parentColumnId]
    * @return java.util.List<com.hxkj.domain.po.Column>
    **/
    @EnableDataSource("slave")
    List<Column> getColumnByParentColumnId(Long parentColumnId);

    /**
    * @author Mr.zheng
    * @Description getColumnById 根据Id
    * @Date 17:02 2018/6/7
    * @Param [columnId]
    * @return com.hxkj.domain.po.Column
    **/
    @EnableDataSource("slave")
    Column getColumnById(Long columnId);

    /**
    * @author Mr.zheng
    * @Description modifyColumn 修改文章分类
    * @Date 17:10 2018/6/7
    * @Param [column]
    * @return int
    **/
    @EnableDataSource("master")
    int modifyColumn(Column column);

    /**
    * @author Mr.zheng
    * @Description modifySortNum 文章分类排序
    * @Date 11:17 2018/6/8
    * @Param [column]
    * @return int
    **/
    @EnableDataSource("master")
    int modifySortNum(Column column);

    /**
     * @author Mr.zheng
     * @Description getColumnList 获取文章分类为显示状态的列表
     * @Date 16:23 2018/6/6
     * @Param [column]
     * @return java.util.List<com.hxkj.domain.po.Column>
     **/
    @EnableDataSource("slave")
    List<Column> getShowColumnList(Column column);

    /**
    * @author Mr.zheng
    * @Description getOptionColumnList 获取解析文章分类列表
    * @Date 13:16 2018/6/30
    * @Param [column]
    * @return java.util.List<com.hxkj.domain.po.Column>
    **/
    List<Column> getOptionColumnList(Column column);

    Column getColumnByName_(Column column);

    /**
     * 根据站点及模板id获取绑定的分类列表数据
     * @param
     * @return
     * @throws Exception
     */
    List<Column> getColumnListByTempletIds(Column column);


    /**
     * @author Mr.zheng
     * @Description getColumnByTempletId 根据模板ID和站点ID去获取分类模拟数据
     * @Date 19:24 2018/8/16
     * @Param [column]
     * @return java.util.List<com.hxkj.domain.po.Column>
     **/
    List<Column> getColumnByTempletId(Column column);

    /**
    * @author Mr.zheng
    * @Description modifyTemptId 修改模板ID
    * @Date 20:44 2018/9/13
    **/
    int modifyTemptId(Column column);

    /**
    * @author Mr.zheng
    * @Description removeContentByColumnId 根据分类ID删除该分类下所有文章的扩展内容
    * @Date 11:58 2018/9/14
    **/
    int removeContentByColumnId(Long columnId);

    /**
    * @author Mr.zheng
    * @Description getColumnByAlias 根据分类别名获取分类
    * @Date 12:21 2018/9/29
    **/
    List<Column> getColumnByAlias(Column column);
}
